package cn.dglydrpy.fundmanagement.dao.entiey;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;

@TableName("fund")
@Data
public class Fund {
    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("fund_code")
    private String fundCode;

    @TableField("fund_name")
    private String fundName;

    @TableField("fund_type")
    private String fundType;

    @TableField("sub_type")
    private String subType;

    @TableField("front_end_purchase_fee")
    private BigDecimal frontEndPurchaseFee;
    
    @TableField("annual_management_fee")
    private BigDecimal annualManagementFee;
    
    @TableField("broker_commission_rate")
    private BigDecimal brokerCommissionRate;

    @TableField("free_fee_min_days")
    private Integer freeFeeMinDays;

    @TableField("net_value")
    private BigDecimal netValue;

    // 1周
    @TableField("net_value_1w")
    private BigDecimal netValue1w;
    @TableField("max_net_value_1w")
    private BigDecimal maxNetValue1w;
    @TableField("min_net_value_1w")
    private BigDecimal minNetValue1w;
    @TableField("net_value_1w_yoy")
    private BigDecimal netValue1wYoy;
    @TableField("max_net_value_1w_yoy")
    private BigDecimal maxNetValue1wYoy;
    @TableField("min_net_value_1w_yoy")
    private BigDecimal minNetValue1wYoy;
    @TableField("profit_loss_ratio_1w")
    private BigDecimal profitLossRatio1w;

    // 1月
    @TableField("net_value_1m")
    private BigDecimal netValue1m;
    @TableField("max_net_value_1m")
    private BigDecimal maxNetValue1m;
    @TableField("min_net_value_1m")
    private BigDecimal minNetValue1m;
    @TableField("net_value_1m_yoy")
    private BigDecimal netValue1mYoy;
    @TableField("max_net_value_1m_yoy")
    private BigDecimal maxNetValue1mYoy;
    @TableField("min_net_value_1m_yoy")
    private BigDecimal minNetValue1mYoy;
    @TableField("profit_loss_ratio_1m")
    private BigDecimal profitLossRatio1m;

    // 3月
    @TableField("net_value_3m")
    private BigDecimal netValue3m;
    @TableField("max_net_value_3m")
    private BigDecimal maxNetValue3m;
    @TableField("min_net_value_3m")
    private BigDecimal minNetValue3m;
    @TableField("net_value_3m_yoy")
    private BigDecimal netValue3mYoy;
    @TableField("max_net_value_3m_yoy")
    private BigDecimal maxNetValue3mYoy;
    @TableField("min_net_value_3m_yoy")
    private BigDecimal minNetValue3mYoy;
    @TableField("profit_loss_ratio_3m")
    private BigDecimal profitLossRatio3m;

    // 6月
    @TableField("net_value_6m")
    private BigDecimal netValue6m;
    @TableField("max_net_value_6m")
    private BigDecimal maxNetValue6m;
    @TableField("min_net_value_6m")
    private BigDecimal minNetValue6m;
    @TableField("net_value_6m_yoy")
    private BigDecimal netValue6mYoy;
    @TableField("max_net_value_6m_yoy")
    private BigDecimal maxNetValue6mYoy;
    @TableField("min_net_value_6m_yoy")
    private BigDecimal minNetValue6mYoy;
    @TableField("profit_loss_ratio_6m")
    private BigDecimal profitLossRatio6m;

    // 1年
    @TableField("net_value_1y")
    private BigDecimal netValue1y;
    @TableField("max_net_value_1y")
    private BigDecimal maxNetValue1y;
    @TableField("min_net_value_1y")
    private BigDecimal minNetValue1y;
    @TableField("net_value_1y_yoy")
    private BigDecimal netValue1yYoy;
    @TableField("max_net_value_1y_yoy")
    private BigDecimal maxNetValue1yYoy;
    @TableField("min_net_value_1y_yoy")
    private BigDecimal minNetValue1yYoy;
    @TableField("profit_loss_ratio_1y")
    private BigDecimal profitLossRatio1y;

    // 2年
    @TableField("net_value_2y")
    private BigDecimal netValue2y;
    @TableField("max_net_value_2y")
    private BigDecimal maxNetValue2y;
    @TableField("min_net_value_2y")
    private BigDecimal minNetValue2y;
    @TableField("net_value_2y_yoy")
    private BigDecimal netValue2yYoy;
    @TableField("max_net_value_2y_yoy")
    private BigDecimal maxNetValue2yYoy;
    @TableField("min_net_value_2y_yoy")
    private BigDecimal minNetValue2yYoy;
    @TableField("profit_loss_ratio_2y")
    private BigDecimal profitLossRatio2y;

    // 3年
    @TableField("net_value_3y")
    private BigDecimal netValue3y;
    @TableField("max_net_value_3y")
    private BigDecimal maxNetValue3y;
    @TableField("min_net_value_3y")
    private BigDecimal minNetValue3y;
    @TableField("net_value_3y_yoy")
    private BigDecimal netValue3yYoy;
    @TableField("max_net_value_3y_yoy")
    private BigDecimal maxNetValue3yYoy;
    @TableField("min_net_value_3y_yoy")
    private BigDecimal minNetValue3yYoy;
    @TableField("profit_loss_ratio_3y")
    private BigDecimal profitLossRatio3y;

    // 5年
    @TableField("net_value_5y")
    private BigDecimal netValue5y;
    @TableField("max_net_value_5y")
    private BigDecimal maxNetValue5y;
    @TableField("min_net_value_5y")
    private BigDecimal minNetValue5y;
    @TableField("net_value_5y_yoy")
    private BigDecimal netValue5yYoy;
    @TableField("max_net_value_5y_yoy")
    private BigDecimal maxNetValue5yYoy;
    @TableField("min_net_value_5y_yoy")
    private BigDecimal minNetValue5yYoy;
    @TableField("profit_loss_ratio_5y")
    private BigDecimal profitLossRatio5y;

    @TableField("created_time")
    private String createdTime;

    @TableField("updated_time")
    private String updatedTime;
    
    @TableField("last_net_value_date")
    private String lastNetValueDate;

    @TableField("status")
    private String status;
}